//package ink.tiptop.post;
//
//
//import cn.easysw.framework.oauth.OAuthConsumer;
//import cn.easysw.framework.oauth.OAuthException;
//import org.apache.commons.codec.binary.Base64;
//
//import java.io.UnsupportedEncodingException;
//import java.security.KeyFactory;
//import java.security.PrivateKey;
//import java.security.PublicKey;
//import java.security.Signature;
//import java.security.spec.PKCS8EncodedKeySpec;
//import java.security.spec.X509EncodedKeySpec;
//
///**
// * @author ink.tiptop.zjf
// * @Title: 20200408-v2.1.5
// * @Package ink.tiptop.post
// * @Description:
// * @date 2020-05-29 21:01
// */
//public class RSAUtils {
//
//    private static Signature getRSAPublicSignature(OAuthConsumer consumer) throws Exception {
//        return createRSAPublicSignature(consumer);
//    }
//
//    private static byte[] paddingBase64(String sign) {
//        int len = sign.length();
//        if (len % 4 == 0) {
//            return sign.getBytes();
//        } else {
//            byte[] b = sign.getBytes();
//            int paddingLen = (len / 4 + 1) * 4;
//            byte[] padding = new byte[paddingLen];
//            System.arraycopy(b, 0, padding, 0, b.length);
//
//            for (int i = b.length; i < paddingLen; ++i) {
//                padding[i] = 61;
//            }
//
//            return padding;
//        }
//    }
//
//    public static boolean isValid(String signature, String baseString, OAuthConsumer consumer) throws Exception {
//        try {
//            Signature signer = getRSAPublicSignature(consumer);
//            signer.update(baseString.getBytes("UTF-8"));
//            byte[] signByte = paddingBase64(signature);
//            return signer.verify(Base64.decodeBase64(signByte));
//        } catch (Exception var6) {
//            var6.printStackTrace();
//            throw var6;
//        }
//    }
//
//    public static String getSign(String baseString, OAuthConsumer consumer) throws Exception {
//        try {
//            PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decodeBase64(consumer.getSecret()));
//            KeyFactory keyf = KeyFactory.getInstance("RSA");
//            PrivateKey priKey = keyf.generatePrivate(priPKCS8);
//
//            Signature signer = Signature.getInstance("SHA1WithRSA");
//            signer.initSign(priKey);
//            signer.update(baseString.getBytes("UTF-8"));
//            return Base64.encodeBase64String(signer.sign());
//        } catch (Exception var6) {
//            var6.printStackTrace();
//            throw var6;
//        }
//    }
//
//
//    private static Signature createRSAPublicSignature(OAuthConsumer consumer) throws Exception {
//        try {
//            PublicKey priKey = getPublicKeyFromX509("RSA", consumer.getSecret());
//            Signature signature = Signature.getInstance("SHA1WithRSA");
//            signature.initVerify(priKey);
//            return signature;
//        } catch (Exception var4) {
//            var4.printStackTrace();
//            throw var4;
//        }
//    }
//
//
//    private static PublicKey getPublicKeyFromX509(String algorithm, String publicKey) throws Exception {
//        if (publicKey != null && algorithm != null) {
//            KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
//            byte[] encodedKey = decodeBase64(publicKey);
//            return keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
//        } else {
//            return null;
//        }
//    }
//
//    private static byte[] decodeBase64(String s) {
//        byte[] b;
//        try {
//            b = s.getBytes("ISO-8859-1");
//        } catch (UnsupportedEncodingException var3) {
//            System.err.println("" + var3);
//            b = s.getBytes();
//        }
//
//        return Base64.decodeBase64(b);
//    }
//
//}
